#ifndef __hook_h
#define __hook_h 1
#include "packet.h"

enum{
    HOOK_RETURN =0,
    HOOK_REMOVE,// remove hook fun
};

typedef int (*hook_fun)(Packet_t *packet);
typedef int (*hook_init)(int argc, char **argv);
struct hook{
    struct hook *next, *prev;
    hook_init init;
    hook_fun fun;
};

extern int Hook( Packet_t *packet);
extern int hook_register(hook_init init,  hook_fun fun);
extern int Hooks_init(int argc, char **argv);
#endif